package com.yunquan.ohana.entity

import com.yunquan.ohana.R

data class WeatherEntity(
    var daily: List<Daily>? = null,
    var hourly: List<Hourly>? = null,
)

data class Daily(
    var cloud: String? = null,
    var fxDate: String? = null,
    var humidity: String? = null,
    var iconDay: String? = null,
    var iconNight: String? = null,
    var moonPhase: String? = null,
    var moonPhaseIcon: String? = null,
    var moonrise: String? = null,
    var moonset: String? = null,
    var precip: String? = null,
    var pressure: String? = null,
    var sunrise: String? = null,
    var sunset: String? = null,
    var tempMax: String? = null,
    var tempMin: String? = null,
    var textDay: String? = null,
    var textNight: String? = null,
    var uvIndex: String? = null,
    var vis: String? = null,
    var wind360Day: String? = null,
    var wind360Night: String? = null,
    var windDirDay: String? = null,
    var windDirNight: String? = null,
    var windScaleDay: String? = null,
    var windScaleNight: String? = null,
    var windSpeedDay: String? = null,
    var windSpeedNight: String? = null,
) {

    fun getWeatherRes(): Int = when (iconDay?.toInt()) {
        100, 150 -> R.mipmap.img_sunny // 晴天（100, 150）
        (100 - 103), (151 - 153) -> R.mipmap.img_cloudy_day // 多云（101-103, 151-153）
        104 -> R.mipmap.img_overcast // 阴天（104）
        (302 - 304) -> R.mipmap.img_thunder // 雷暴（302-304）
        305, 309, 314 -> R.mipmap.img_light_rain // 小雨（305, 309, 314）
        306, 315 -> R.mipmap.img_middle_rain // 中雨（306, 315）
        (307 - 308), (310 - 318) -> R.mipmap.img_big_rain // 大雨（307-308, 310-318）
        (400 - 403), (406 - 499) -> R.mipmap.img_snow // 下雪（400-403, 406-499）
        304, (404 - 405) -> R.mipmap.img_hail // 冰雹（304, 404-405）
        (500 - 515) -> R.mipmap.img_foggy // 雾霾（500-515）
        else -> R.mipmap.img_sunny
    }
}

data class Hourly(
    var cloud: String? = null,
    var dew: String? = null,
    var fxTime: String? = null,
    var humidity: String? = null,
    var icon: String? = null,
    var pop: String? = null,
    var precip: String? = null,
    var pressure: String? = null,
    var temp: String? = null,
    var text: String? = null,
    var wind360: String? = null,
    var windDir: String? = null,
    var windScale: String? = null,
    var windSpeed: String? = null,
) {
    fun getWeatherRes(): Int = when (icon?.toInt()) {
        100, 150 -> R.mipmap.img_sunny // 晴天（100, 150）
        (100 - 103), (151 - 153) -> R.mipmap.img_cloudy_day // 多云（101-103, 151-153）
        104 -> R.mipmap.img_overcast // 阴天（104）
        (302 - 304) -> R.mipmap.img_thunder // 雷暴（302-304）
        305, 309, 314 -> R.mipmap.img_light_rain // 小雨（305, 309, 314）
        306, 315 -> R.mipmap.img_middle_rain // 中雨（306, 315）
        (307 - 308), (310 - 318) -> R.mipmap.img_big_rain // 大雨（307-308, 310-318）
        (400 - 403), (406 - 499) -> R.mipmap.img_snow // 下雪（400-403, 406-499）
        304, (404 - 405) -> R.mipmap.img_hail // 冰雹（304, 404-405）
        (500 - 515) -> R.mipmap.img_foggy // 雾霾（500-515）
        else -> R.mipmap.img_sunny
    }

    fun getBackgroundRes(): Int = when (icon?.toInt()) {
        100, 150 -> R.mipmap.bg_sunny // 晴天（100, 150）
        (100 - 103), (151 - 153) -> R.mipmap.bg_cloudy_day // 多云（101-103, 151-153）
        104 -> R.mipmap.bg_cloudy_day // 阴天（104）
        (302 - 304) -> R.mipmap.bg_thunder // 雷暴（302-304）
        305, 309, 314 -> R.mipmap.bg_rain // 小雨（305, 309, 314）
        306, 315 -> R.mipmap.bg_rain // 中雨（306, 315）
        (307 - 308), (310 - 318) -> R.mipmap.bg_rain // 大雨（307-308, 310-318）
        (400 - 403), (406 - 499) -> R.mipmap.bg_snow // 下雪（400-403, 406-499）
        304, (404 - 405) -> R.mipmap.bg_snow // 冰雹（304, 404-405）
        (500 - 515) -> R.mipmap.bg_cloudy_day // 雾霾（500-515）
        else -> R.mipmap.bg_sunny
    }
}